package controllers;

import java.util.List;

import models.User;
import models.UserProp;
import models.Weixin;
import play.i18n.Messages;
import play.mvc.Controller;
import utils.Page;
import utils.json.serializer.PageSerializer;
import utils.json.serializer.UserPropSerializer;

/**
 * 用户控制器
 * 
 * @author ultrafrog
 * @version 1.0, 2014-11-13
 * @since 1.0
 */
public class Users extends Admin {

	/** 用户首页 */
	public static void index() {
		Weixin weixin = Weixin.current();
		if (weixin == null) {
			flash.error(Messages.get("weixin.current.null"));
			index();
		}
		render();
	}
	
	/**
	 * 用户查询
	 * 
	 * @param page
	 * @param size
	 */
	public static void search(Integer page, Integer size) {
		// 初始化并查询数据
		Weixin weixin = Weixin.current();
		Page<User> userp = new Page<User>(page, size);
		List<User> users = User.find("weixin = ? order by createTime desc", weixin.id).fetch(userp.getPage(), userp.getSize());
		
		// 处理数据
		for (User user: users) { user.prop = UserProp.find("byUser", user.id).first(); }
		userp.getContent().addAll(users);
		userp.setTotal(User.count("byWeixin", weixin.id));
		
		// 输出数据
		renderJSON(userp, new PageSerializer(), new UserPropSerializer());
	}
}
